<template>
    <!-- 顶部滑动条区域 -->
        <div>
            <div id="slider" class="mui-slider">
				<div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
					<div class="mui-scroll">
						<a :class="['mui-control-item', i ==0?'mui-active':'']" v-for="(item,i) in categories" :key="item" @click="getPhotoListByCateName(item)">
							{{item}}
						</a>
					</div>
				</div>
			</div>
    <!-- 底下的图片列表区域 -->

        <ul class="photo-list">
            <router-link :to="'/home/photoinfo/'+(item.channel)+'/'+(index+1)" v-for="(item,index) in list" :key="index" tag="li">
                <img v-lazy="item.picInfo[0].url">
                <div class="info">
                    <h1 class="info-title">{{item.title}}</h1>
                    <div class="info-body">{{item.digest}}</div>
                </div>
            </router-link>
        </ul>
        </div>

        
</template>

<script>
// 1.导入mui的文件
import mui from '../../lib/mui/js/mui.min.js';
// // 2.初始化滑动控件 （错误的初始化时期，应该写在mounted函数里面）
// mui('.mui-scroll-wrapper').scroll({
//     deceleration: 0.0005 //flick 减速系数，系数越大，滚动速度越慢，滚动距离越小，默认值0.0006
// });
export default {
    data(){
        return {
            categories:[],//所有分类的列表数组
            list:[]//图片的列表数组
        };
    },
    mounted(){//当组件中的dom结构已经渲染好了并放在了页面中后，会执行这个钩子函数
        // 如果操作dom元素，最好在mounted里面，因为这个时候的dom元素是最新的
        // 2.初始化滑动控件
        mui('.mui-scroll-wrapper').scroll({
            deceleration: 0.0005 //flick 减速系数，系数越大，滚动速度越慢，滚动距离越小，默认值0.0006
        });
    },
    created(){
        this.getAllCategory();
        // this.getPhotoListByCateName()//默认进入页面就发出请求获取所有图片的列表的数据
    },
    methods:{
        getAllCategory(){//获取所有的图片分类
            this.$http.get('https://www.apiopen.top/journalismApi').then(res=>{
                if(res.body.code===200){
                    // 通过Object.keys()方法获取一个对象的属性，将其组成一个数组，并返回这个数组
                    // 可以计算分类数组的长度来表示种类的多少
                    // console.log(res);
                    // console.log(Object.keys(res.body.data).length);
                    // console.log(Object.keys(res.body.data));
                    this.categories = Object.keys(res.body.data);
                    // console.log(categories);
                    // 手动添加一个all分类
                    this.categories.unshift("all")
                    // console.log(categories);
                    

                }
            })
        },
        getPhotoListByCateName(catename){
            this.list = [];
            this.$http.get('https://www.apiopen.top/journalismApi').then(res=>{
                console.log(res);
                var length = res.body.data[catename].length;
                // console.log(length);
                for(var i = 0;i<length;i++) {
                this.list.push(res.body.data[catename][i]); 
                console.log(this.list)
                }
            })
        }
    }
}
</script>


<style lang="scss" scoped>
*{
    // [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080是Chrome为了提高页面流畅度而弄的一个东西
    touch-action: pan-y //在滑动滑动条时移除上面的警告

 }  
 .photo-list{
     list-style: none;
     margin: 0;
     padding: 10px;
     padding-bottom: 0px;
    li{
        text-align: center;
        background-color: #ccc;
        padding-bottom: 5px;
        position: relative;
        img{
            width: 100%;
            vertical-align: middle;
            // box-shadow: 0 0 9px #999;
        }
        img[lazy=loading] {
            width: 40px;
            height: 300px;
            margin: auto;
        }
        .info{
            color: white;
            position: absolute;
            bottom: 0px;
            background-color:rgba(0,0,0,0.4);
            max-height: 60px;
            .info-title{
                font-size: 14px;
            }
            .info-body{
                font-size: 11px;
                text-align: left;
                text-indent: 2em;

            }
        }
    }
}


</style>
